package com.ziytek.web.citizen.enums;

import com.ziytek.web.citizen.service.itf.StepAddResponse;
import lombok.Getter;

/**
 * @author fenghx
 * @version 1.0
 * @className StepEnum
 * Description:
 * @date 2024/3/15 13:24
 */
@Getter
public enum StepEnum implements StepAddResponse {
    /**
     * Description: 工步方案保存返回信息
     */
    SUCCESS("0", "成功"),
    NAME_ERROR("95", "新增方案名称不能重复"),
    UPDATE_NAME_ERROR("96", "方案名称已存在"),
    UPDATE_NO_ERROR("009", "方案编号已存在"),
    LIST_COUNT_OUT("97", "工步列表数量上限不能大于100"),
    NAME_NOT_EXIST("98", "工步方案名不能为空"),
    OBJECT_NOT_EXIST("99", "工步方案不存在"),
    PROTECTION_SET_PARAMETER_ERROR("101", "保护参数设置不正确"),
    SET_LIST_EMPTY("102", "工步设置列表不能为空"),
    SET_LIST_ERROR("103", "工步设置列表配置不正确"),
    ADD_ERROR("104", "工步方案新增失败"),
    MODIFY_ERROR("0104", "工步方案编辑失败"),
    CPD_ADD_ERROR("0105", "工步方案新增(编辑)失败-恒功率放电工步设置参数异常"),
    CPD_MODIFY_ERROR("0106", "工步方案编辑失败-恒功率放电工步设置参数异常"),

    CCV_ERROR("105", "恒流恒压充电工步设置参数不正确"),
    CC_ERROR("106", "恒流充电工步设置参数不正确"),
    CV_ERROR("107", "恒压充电工步设置参数不正确"),
    CCD_ERROR("108", "恒流放电工步设置参数不正确"),

    STEP_ISSUED_ID_ERROR("109", "参数异常,主键不能为空"),
    STEP_ISSUED_NO_ERROR("110", "参数异常,机柜编号不能为空"),
    STEP_ISSUED_NOT_EXIST("111", "工步设置方案不存在"),
    STEP_ISSUED_LIST_NOT_EXIST("112", "工步方案执行工步列表不存在"),
    STEP_ISSUED_FAILED("113", "部分工步方案执行失败"),
    STEP_LOOP_SET_FAILED("114", "工步方案循环设置异常"),


    REQUEST_PARAMETER_ERROR("199", "参数异常"),
    OTHER("201", "接口请求失败");

    public final String code;
    public final String desc;

    StepEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public String getMsg(String code) {
        for (StepEnum sp : StepEnum.values()) {
            if (sp.getCode().equalsIgnoreCase(code)) {
                return sp.desc;
            }
        }
        return ResponseEnum.OTHER_ERROR.getDesc();
    }

    @Override
    public int getPosition(String code) {
        return 0;
    }

    @Override
    public String getCode(String line, int position) {
        return null;
    }
}
